// 引入image-conversion
import * as imageConversion from 'image-conversion'


// 第一种,图片超过1M就压缩
export function beforeUpload1(file) {
	console.log('开始压缩')
	return new Promise((resolve, reject) => {
		console.log('图片尺寸：' + file.size)
		let isLt2M = file.size / 1024 / 1024 < 1
		// 图片大小是否小于1MB且宽度在750内，直接返回
		if (isLt2M && file.width < 1000) {
			resolve(file)
		}
		//console.log('压缩前')
		//console.log(file)
		// 压缩到400KB,这里的400就是要压缩的大小,可自定义
		imageConversion.compressAccurately(file.raw, {
			size: 1536,
			width: 1000
		}).then(res => {
			// console.log(res)
			// console.log('压缩后')
			// console.log(res)
			resolve(res)
		})
	})
}

//第二种,图片大小超过4M,长度超过2000就压缩
export function beforeUpload2(file) {
	// 图片不大于4m,宽度不大于2000
	return new Promise((resolve, reject) => {
		let _URL = window.URL || window.webkitURL
		let isLt2M = file.size / 1024 / 1024 > 4 // 判定图片大小是否小于4MB
		// 这里需要计算出图片的长宽
		let img = new Image()
		img.onload = function() {
			file.width = img.width // 获取到width放在了file属性上
			file.height = img.height // 获取到height放在了file属性上
			let valid = img.width > 2000 // 图片宽度大于2000
			// console.log(11, file)
			// 这里我只判断了图片的宽度,compressAccurately有多个参数时传入对象
			if (valid || isLt2M) {
				imageConversion.compressAccurately(file, {
					size: 400,
					width: 2000
				}).then(res => {
					// console.log(33, res)
					resolve(res)
				})
			} else resolve(file)
		}
		// 需要把图片赋值
		img.src = _URL.createObjectURL(file)
	})
}

// 用于图片压缩组件，file结构的位置不同
export function beforeUpload3(file) {
	console.log('开始压缩')
	return new Promise((resolve, reject) => {
		let isLt2M = file.size / 1024 / 1024 < 2
		// 图片大小是否小于2MB且宽度在750内，直接返回
		if (isLt2M && file.width < 1000) {
			resolve(file)
		}
		//console.log('压缩前')
		//console.log(file)
		// 压缩到400KB,这里的400就是要压缩的大小,可自定义
		imageConversion.compressAccurately(file, {
			size: 1536,
			width: 1000
		}).then(res => {
			// console.log(res)
			// console.log('压缩后')
			// console.log(res)
			resolve(res)
		})
	})
}